package com.candy.dao;

import java.sql.*;

public class DBHelper {
//    将数据库连接对象返回方法
//    java中的方法
//  访问控制修饰符    返回值类型   方法名（形参列表）{方法体}
    public  static    Connection getconn(){
        String url="jdbc:mysql://localhost:3306/qlgjavaweb?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false";
//       数据库用户名
        String username="root";
//        数据库密码
        String userpwd="123456";
         Connection   conn=null;
//        加载驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
//（2）获取数据库的连接对象Connection；
            conn= DriverManager.getConnection(url,username,userpwd);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }
//    设计一个方法，执行增删改操作的
    public static  int update(String strsql){
//        获取数据库链接对象
        Connection conn=getconn();
        int num=0;
        try {
//            获取Statement对象用于执行增删改查操作
            Statement sta= conn.createStatement();
//            调用executeUpdate执行增删改查操作
            num= sta.executeUpdate(strsql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return num;
    }
//查询方法
    public static ResultSet getInfo(String strsql){
//        获取数据库链接对象
        Connection conn=getconn();
        ResultSet re=null;
//        异常处理的快捷键：ctrl+alt+t
        try {
//            获取执行增删改查操作的Statement对象
            Statement statement= conn.createStatement();
//（4）执行SQL语句，获取数据操作结果或者结果集对象ResultSet；
            re= statement.executeQuery(strsql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return re;
    }
//    问题：在查询时，ResultSet使用时，要保持Statement、Connection一直处于活跃状态，占用资源
//    将资源关闭后，无法再获取结果，此时应该怎么办？
//    数据转储
//    常用的转储方式有：List+Map或List+javabean两种方式可以选择







}
